<?php

/**
 * This is the model class for table "formulario".
 *
 * The followings are the available columns in table 'formulario':
 * @property integer $id
 * @property string $primer_nombre
 * @property string $segundo_nombre
 * @property string $primer_apellido
 * @property string $segundo_apellido
 * @property string $fecha_nacimiento
 * @property string $nacionalidad
 * @property string $tipo_identificacion
 * @property string $identificacion
 * @property string $estado_civil
 * @property string $email
 * @property string $telefono_personal
 * @property string $departamento
 * @property string $municipio
 * @property string $direccion
 * @property string $profesion
 * @property string $nivel_academico
 * @property string $centro_estudios
 * @property string $fecha_digitacion
 * @property integer $digitador
 *
 * The followings are the available model relations:
 * @property Certificado[] $certificados
 * @property Especialidad[] $especialidads
 * @property EstudioAdicional[] $estudioAdicionals
 * @property Usuario $digitador0
 */
class Formulario extends CActiveRecord
{
	/**
	 * Returns the static model of the specified AR class.
	 * @param string $className active record class name.
	 * @return Formulario the static model class
	 */
	public static function model($className=__CLASS__)
	{
		return parent::model($className);
	}

	/**
	 * @return string the associated database table name
	 */
	public function tableName()
	{
		return 'formulario';
	}

	/**
	 * @return array validation rules for model attributes.
	 */
	public function rules()
	{
		// NOTE: you should only define rules for those attributes that
		// will receive user inputs.
		return array(
			array('primer_nombre, primer_apellido, nacionalidad, tipo_identificacion, identificacion, estado_civil, email, telefono_personal, departamento, municipio, fecha_digitacion, digitador', 'required'),
			array('digitador', 'numerical', 'integerOnly'=>true),
			array('primer_nombre, segundo_nombre, primer_apellido, segundo_apellido, nacionalidad, identificacion, estado_civil, email, direccion, profesion, nivel_academico, centro_estudios', 'length', 'max'=>45),
			array('tipo_identificacion, telefono_personal', 'length', 'max'=>15),
			array('departamento, municipio', 'length', 'max'=>50),
			array('fecha_nacimiento', 'safe'),
			// The following rule is used by search().
			// Please remove those attributes that should not be searched.
			array('id, primer_nombre, segundo_nombre, primer_apellido, segundo_apellido, fecha_nacimiento, nacionalidad, tipo_identificacion, identificacion, estado_civil, email, telefono_personal, departamento, municipio, direccion, profesion, nivel_academico, centro_estudios, fecha_digitacion, digitador', 'safe', 'on'=>'search'),
		);
	}

	/**
	 * @return array relational rules.
	 */
	public function relations()
	{
		// NOTE: you may need to adjust the relation name and the related
		// class name for the relations automatically generated below.
		return array(
			'certificados' => array(self::HAS_MANY, 'Certificado', 'formulario_id'),
			'especialidads' => array(self::HAS_MANY, 'Especialidad', 'formulario_id'),
			'estudioAdicionals' => array(self::HAS_MANY, 'EstudioAdicional', 'formulario_id'),
			'digitador0' => array(self::BELONGS_TO, 'Usuario', 'digitador'),
		);
	}

	/**
	 * @return array customized attribute labels (name=>label)
	 */
	public function attributeLabels()
	{
		return array(
			'id' => 'ID',
			'primer_nombre' => 'Primer Nombre',
			'segundo_nombre' => 'Segundo Nombre',
			'primer_apellido' => 'Primer Apellido',
			'segundo_apellido' => 'Segundo Apellido',
			'fecha_nacimiento' => 'Fecha Nacimiento',
			'nacionalidad' => 'Nacionalidad',
			'tipo_identificacion' => 'Tipo Identificacion',
			'identificacion' => 'Identificacion',
			'estado_civil' => 'Estado Civil',
			'email' => 'Email',
			'telefono_personal' => 'Telefono Personal',
			'departamento' => 'Departamento',
			'municipio' => 'Municipio',
			'direccion' => 'Direccion',
			'profesion' => 'Profesion',
			'nivel_academico' => 'Nivel Academico',
			'centro_estudios' => 'Centro Estudios',
			'fecha_digitacion' => 'Fecha Digitacion',
			'digitador' => 'Digitador',
		);
	}

	/**
	 * Retrieves a list of models based on the current search/filter conditions.
	 * @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions.
	 */
	public function search()
	{
		// Warning: Please modify the following code to remove attributes that
		// should not be searched.

		$criteria=new CDbCriteria;

		$criteria->compare('id',$this->id);
		$criteria->compare('primer_nombre',$this->primer_nombre,true);
		$criteria->compare('segundo_nombre',$this->segundo_nombre,true);
		$criteria->compare('primer_apellido',$this->primer_apellido,true);
		$criteria->compare('segundo_apellido',$this->segundo_apellido,true);
		$criteria->compare('fecha_nacimiento',$this->fecha_nacimiento,true);
		$criteria->compare('nacionalidad',$this->nacionalidad,true);
		$criteria->compare('tipo_identificacion',$this->tipo_identificacion,true);
		$criteria->compare('identificacion',$this->identificacion,true);
		$criteria->compare('estado_civil',$this->estado_civil,true);
		$criteria->compare('email',$this->email,true);
		$criteria->compare('telefono_personal',$this->telefono_personal,true);
		$criteria->compare('departamento',$this->departamento,true);
		$criteria->compare('municipio',$this->municipio,true);
		$criteria->compare('direccion',$this->direccion,true);
		$criteria->compare('profesion',$this->profesion,true);
		$criteria->compare('nivel_academico',$this->nivel_academico,true);
		$criteria->compare('centro_estudios',$this->centro_estudios,true);
		$criteria->compare('fecha_digitacion',$this->fecha_digitacion,true);
		$criteria->compare('digitador',$this->digitador);

		return new CActiveDataProvider($this, array(
			'criteria'=>$criteria,
		));
	}
}